8037ec54: 27 bd ff e8  ADDIU sp, sp, 0xffffffe8 (-24)   /* LEVEL COMMAND 0x16 */
8037ec58: af bf 00 14  SW ra, sp, 0x14 (20)

8037ec5c: 3c 0e 80 39  LUI t6, 0x8039 (32825)
8037ec60: 8d ce be 28  LW t6, t6, 0xffffbe28 (-16856)
8037ec64: 8d c4 00 04  LW a0, t6, 0x4 (4)
8037ec68: 8d c5 00 08  LW a1, t6, 0x8 (8)
8037ec6c: 0c 09 e1 bc  JAL 0x802786f0 (-2144893200)        FixedCopy(
8037ec70: 8d c6 00 0c  LW a2, t6, 0xc (12)

8037ec74: 3c 0f 80 39  LUI t7, 0x8039 (32825)
8037ec78: 8d ef be 28  LW t7, t7, 0xffffbe28 (-16856)
8037ec7c: 3c 01 80 39  LUI at, 0x8039 (32825)
8037ec80: 91 f8 00 01  LBU t8, t7, 0x1 (1)
8037ec84: 01 f8 c8 21  ADDU t9, t7, t8
8037ec88: ac 39 be 28  SW t9, at, 0xffffbe28 (-16856)

8037ec8c: 10 00 00 01  BEQ r0, r0, 0x8037ec94 (pc + 0x4)
8037ec90: 00 00 00 00  NOP



802786f0: 27 bd ff d8  ADDIU sp, sp, 0xffffffd8 (-40)
802786f4: af bf 00 14  SW ra, sp, 0x14 (20)
802786f8: af a4 00 28  SW a0, sp, 0x28 (40)                    [sp + 0x28] === arg1
802786fc: af a5 00 2c  SW a1, sp, 0x2c (44)                    [sp + 0x2c] === arg2
80278700: af a6 00 30  SW a2, sp, 0x30 (48)                    [sp + 0x30] === arg3

80278704: af a0 00 24  SW r0, sp, 0x24 (36)                [sp + 0x24] = 0;

80278708: 8f ae 00 30  LW t6, sp, 0x30 (48)
8027870c: 8f af 00 2c  LW t7, sp, 0x2c (44)
80278710: 24 01 ff f0  ADDIU at, r0, 0xfffffff0 (-16)
80278714: 01 cf c0 23  SUBU t8, t6, t7
80278718: 27 19 00 0f  ADDIU t9, t8, 0xf (15)
8027871c: 03 21 40 24  AND t0, t9, at
80278720: af a8 00 20  SW t0, sp, 0x20 (32)                [sp + 0x20] = (arg3 - arg2 + 15)& 0xfffffff0;

80278724: 3c 09 80 34  LUI t1, 0x8034 (32820)
80278728: 8d 29 b4 90  LW t1, t1, 0xffffb490 (-19312)
8027872c: 8f aa 00 28  LW t2, sp, 0x28 (40)
80278730: 24 01 ff f0  ADDIU at, r0, 0xfffffff0 (-16)
80278734: 01 2a 58 23  SUBU t3, t1, t2
80278738: 25 6c 00 0f  ADDIU t4, t3, 0xf (15)
8027873c: 01 81 68 24  AND t5, t4, at
80278740: af ad 00 1c  SW t5, sp, 0x1c (28)                [sp + 0x1c] =  ((*(0x8033b490)- arg1) + 15) & 0xfffffff0;

80278744: 8f ae 00 20  LW t6, sp, 0x20 (32)
80278748: 8f af 00 1c  LW t7, sp, 0x1c (28)
8027874c: 01 ee 08 2b  SLTU at, t7, t6
80278750: 14 20 00 19  BNE at, r0, 0x802787b8 (pc + 0x64)  if ([sp + 0x1c] < [sp + 0x20]) goto 0x802787b8;
80278754: 00 00 00 00  NOP

80278758: 8f a4 00 1c  LW a0, sp, 0x1c (28)
8027875c: 0c 09 e0 48  JAL 0x80278120 (-2144894688)        [sp + 0x24] = 0x80278120([sp + 0x1c], 1);
80278760: 24 05 00 01  ADDIU a1, r0, 0x1 (1)
80278764: af a2 00 24  SW v0, sp, 0x24 (36)

80278768: 8f b8 00 24  LW t8, sp, 0x24 (36)
8027876c: 13 00 00 10  BEQ r0, t8, 0x802787b0 (pc + 0x40)  if ([sp + 0x24] == 0) goto 0x802787b0;
80278770: 00 00 00 00  NOP

80278774: 8f a4 00 24  LW a0, sp, 0x24 (36)
80278778: 0c 0c 91 5c  JAL 0x80324570 (-2144189072)        blkclr([sp + 0x24], [sp + 0x1c]);
8027877c: 8f a5 00 1c  LW a1, sp, 0x1c (28)

80278780: 0c 0c 8b d0  JAL 0x80322f40 (-2144194752)        osWriteBackDCacheAll();
80278784: 00 00 00 00  NOP

80278788: 8f a4 00 24  LW a0, sp, 0x24 (36)
8027878c: 8f a5 00 2c  LW a1, sp, 0x2c (44)
80278790: 0c 09 e1 41  JAL 0x80278504 (-2144893692)        DmaCopy([sp + 0x24], [sp + 0x2c], [sp + 0x30]);
80278794: 8f a6 00 30  LW a2, sp, 0x30 (48)

80278798: 8f a4 00 24  LW a0, sp, 0x24 (36)
8027879c: 0c 0c 91 84  JAL 0x80324610 (-2144188912)        osInvalCache([sp + 0x24], [sp + 0x1c]);
802787a0: 8f a5 00 1c  LW a1, sp, 0x1c (28)

802787a4: 8f a4 00 24  LW a0, sp, 0x24 (36)
802787a8: 0c 0c 90 ec  JAL 0x803243b0 (-2144189520)        osInvalDCache([sp + 0x24], [sp + 0x1c]);
802787ac: 8f a5 00 1c  LW a1, sp, 0x1c (28)

802787b0: 10 00 00 01  BEQ r0, r0, 0x802787b8 (pc + 0x4)
802787b4: 00 00 00 00  NOP
802787b8: 10 00 00 03  BEQ r0, r0, 0x802787c8 (pc + 0xc)
802787bc: 8f a2 00 24  LW v0, sp, 0x24 (36)                return [sp + 0x24];
802787c0: 10 00 00 01  BEQ r0, r0, 0x802787c8 (pc + 0x4)
802787c4: 00 00 00 00  NOP
802787c8: 8f bf 00 14  LW ra, sp, 0x14 (20)
802787cc: 27 bd 00 28  ADDIU sp, sp, 0x28 (40)
802787d0: 03 e0 00 08  JR ra
802787d4: 00 00 00 00  NOP

[sp + 0x24] = 0;
[sp + 0x20] = (arg3 - arg2 + 15)& 0xfffffff0;
[sp + 0x1c] =  ((*(0x8033b490)- arg1) + 15) & 0xfffffff0;
if ([sp + 0x1c] >= [sp + 0x20]) {
    [sp + 0x24] = _pool_alloc([sp + 0x1c], 1);
    if ([sp + 0x24]) {
        blkclr([sp + 0x24], [sp + 0x1c]);
        osWriteBackDCacheAll();
        DmaCopy([sp + 0x24], arg2, arg3);
        osInvalCache([sp + 0x24], [sp + 0x1c]);
        osInvalDCache([sp + 0x24], [sp + 0x1c]);
    }
}
return [sp + 0x24];


ptr = 0;
[sp + 0x20] = (arg3 - arg2 + 15)& 0xfffffff0;
[sp + 0x1c] =  ((*(0x8033b490)- arg1) + 15) & 0xfffffff0;
if ([sp + 0x1c] >= [sp + 0x20]) {
    ptr = _pool_alloc([sp + 0x1c], 1);
    if (ptr) {
        blkclr(ptr, [sp + 0x1c]);
        osWriteBackDCacheAll();
        DmaCopy(ptr, arg2, arg3);
        osInvalCache(ptr, [sp + 0x1c]);
        osInvalDCache(ptr, [sp + 0x1c]);
    }
}
return ptr;
